version 13
#delimit;
clear all;
set more off;
capture log close;


global strformat "%8.3f";

capture program drop sig_p;
program sig_p;
   args obj_var point_est_var point_sd_var p_val row_id_var row_num;
   local point_est `point_est_var';
   local point_sd `point_sd_var';
   if `p_val' > 0.1 {;
      replace `obj_var' = string(`point_est', "$strformat") if `row_id_var' == `row_num';
      };
   if `p_val' > 0.05 & `p_val' <= 0.1  {;
      replace `obj_var' = string(`point_est', "$strformat")+"*" if `row_id_var' == `row_num';
      };
   if `p_val' > 0.01 & `p_val' <= 0.05  {;
      replace `obj_var' = string(`point_est', "$strformat")+"**" if `row_id_var' == `row_num';
      };
   if `p_val' <= 0.01 {;
      replace `obj_var' = string(`point_est', "$strformat")+"***" if `row_id_var' == `row_num';
      };
   replace `obj_var' = "<" + string(`point_sd', "$strformat") + ">" + " " if `row_id_var' == `row_num' + 1;
   end;



*enter directory name here;

use "$dir/ReStat_children.dta", clear;



global fu_child_controls_cm
	"control_fu_child_age control_fu_female
	missing_fu_child_age missing_fu_female";
		
global fu_hh_controls_cm
	"control_fu_adults control_fu_hh_head_edu control_fu_hh_head_occ_farmer 
	control_fu_total_land control_fu_household_size
	missing_fu_adults missing_fu_hh_head_edu missing_fu_hh_head_occ_farmer 
	missing_fu_total_land missing_fu_household_size";



gen row_num = _n;


forvalues i=0/25 {;
	generate col`i' = "";
};

local row = 4;
sort row_num;
order col0-col25;


forvalues i=5/10 {;


replace col1 = "`i'" if row_num == `row';

su fu_child_enrolled if pooled_treatment == 0 & 
	fu_child_level == 1 & fu_young_child == 1 & fu_child_age == `i' [aw=hh_weight];
replace col3 = string(r(mean), "$strformat") if row_num == `row';

su total_score_pct if pooled_treatment == 0 & 
	fu_child_level == 1 & fu_young_child == 1 & fu_child_age == `i' [aw=hh_weight];
replace col4 = string(r(mean), "$strformat") if row_num == `row';
replace col4 = "(" + string(r(sd), "$strformat") + ")" if row_num == `row' + 1;

gen total_score_mean_`i' = r(mean);
gen total_score_sd_`i' = r(sd);
gen total_score_dev_`i' = (total_score_pct - total_score_mean_`i')/total_score_sd_`i';



xi: regress fu_child_enrolled 
	pooled_treatment 
	$fu_hh_controls_cm $fu_child_controls_cm i.bl_district 
	if fu_child_level == 1 & fu_young_child == 1 & fu_child_age == `i' [pw=hh_weight], cluster(villcode);
test pooled_treatment;
sig_p col6 _b[pooled_treatment] _se[pooled_treatment] r(p) row_num `row';


xi: regress total_score_pct 
	pooled_treatment 
	$fu_hh_controls_cm $fu_child_controls_cm i.bl_district 
	if fu_child_level == 1 & fu_young_child == 1 & fu_child_age == `i' [pw=hh_weight], cluster(villcode);
test pooled_treatment;
sig_p col8 _b[pooled_treatment] _se[pooled_treatment] r(p) row_num `row';

xi: regress total_score_dev_`i' 
	pooled_treatment 
	$fu_hh_controls_cm $fu_child_controls_cm i.bl_district 
	if fu_child_level == 1 & fu_young_child == 1 & fu_child_age == `i' [pw=hh_weight], cluster(villcode);
test pooled_treatment;
sig_p col9 _b[pooled_treatment] _se[pooled_treatment] r(p) row_num `row';




xi: ivreg2 total_score_pct 
	(fu_child_enrolled = pooled_treatment) 
	$fu_hh_controls_cm $fu_child_controls_cm i.bl_district 
	if fu_child_level == 1 & fu_young_child == 1 & fu_child_age == `i' [pw=hh_weight], cluster(villcode);
test fu_child_enrolled;
sig_p col11 _b[fu_child_enrolled] _se[fu_child_enrolled] r(p) row_num `row';

xi: ivreg2 total_score_dev_`i' 
	(fu_child_enrolled = pooled_treatment) 
	$fu_hh_controls_cm $fu_child_controls_cm i.bl_district 
	if fu_child_level == 1 & fu_young_child == 1 & fu_child_age == `i' [pw=hh_weight], cluster(villcode);
test fu_child_enrolled;
sig_p col12 _b[fu_child_enrolled] _se[fu_child_enrolled] r(p) row_num `row';


local row = `row' + 3;

};

outsheet col0-col12 using "$dir/Table B4 test scores by age group.csv" if row_num < `row',
	comma replace;
